/**
 * 
 */
package uniandes.dermatologia.resources.dao;

import java.util.ArrayList;
import java.util.Date;

import org.droidpersistence.dao.DroidDao;
import org.droidpersistence.dao.TableDefinition;

import uniandes.dermatologia.resources.models.AnamnesisModel;
import android.database.sqlite.SQLiteDatabase;

/**
 * @author Julio
 *
 */
public class AnamnesisDao extends DroidDao<AnamnesisModel, Long> {

	/**
	 * @param model
	 * @param tableDefinition
	 * @param database
	 */
	public AnamnesisDao(TableDefinition<AnamnesisModel> tableDefinition,
			SQLiteDatabase database) {
		super(AnamnesisModel.class, tableDefinition, database);
	}
	
	public AnamnesisModel getLast()
	{
		AnamnesisModel model = null;
		ArrayList<AnamnesisModel> models = (ArrayList<AnamnesisModel>) getAll();
		Date last_date_added = null;
		Date date;
		for(AnamnesisModel m : models)
		{
			date = m.getDate_added();
			if(last_date_added == null || date.after(last_date_added))
			{
				last_date_added = date;
				model = m;
			}
		}
		return model;
	}
	
	public long getModelId(AnamnesisModel anamnesisModel)
	{
		long id = -1;
		String[] clauseArgs = new String[]{anamnesisModel.getGender(), anamnesisModel.getPhototype(), 
				anamnesisModel.getAge(), anamnesisModel.getBirthdate(), String.valueOf(anamnesisModel.getCase_id())};
		if(getAll().size()> 0)
		{
			AnamnesisModel model = getByClause("GENDER = ? AND PHOTOTYPE = ? AND AGE = ? AND BIRTHDATE = ? AND CASE_ID = ?", clauseArgs);
			if(model != null)
			{
				id = model.getId();
			}
		}
		return id;
	}

}
